let base_url = "http://192.168.60.36:9527/"


if (!window.platform) {
	base_url = `${window.location.origin}/`;
} else {
	base_url = `http://${window.platform.ip}:${window.platform.port}/`;
}

/**
 *  将date 类型转换为指定的字符串类型
 * @param fmt  为转为日期字符串格式如yyyy-MM-dd HH:mm:ss
 * @returns
 */
Date.prototype.Format = function(fmt) {
	var o = {
		"M+": this.getMonth() + 1, //月份
		"d+": this.getDate(), //日
		"h+": this.getHours(), //小时
		"m+": this.getMinutes(), //分
		"s+": this.getSeconds(), //秒
		"q+": Math.floor((this.getMonth() + 3) / 3), //季度
		"S": this.getMilliseconds() //毫秒
	};
	if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
	for (var k in o)
		if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : ((
			"00" + o[
				k]).substr(("" + o[k]).length)));
	return fmt;
};

function showImg(e) {

	layui.use('layer', function() {

		layer.open({
			type: 1,
			title: false,
			closeBtn: 0,
			area: 'auto',
			offset: 'auto',
			skin: 'layui-layer-nobg', //没有背景色
			shadeClose: true,
			closeBtn: 1,
			content: `<div style="text-align:center;"><img src="${e}" height="350px" style="background:#fff;padding:15px"></div> `
		});

	});
}

function endtime(endTime) {
	if (endTime == null) {
		return "";
	} else {
		return new Date(endTime).Format("yyyy-MM-dd");
	}
}

function isNull(da) {
	if (da == null) {
		return "";
	} else {
		return da;
	}
}

function numAdd(num1, num2) {
	var baseNum, baseNum1, baseNum2;
	try {
		baseNum1 = num1.toString().split(".")[1].length;
	} catch (e) {
		baseNum1 = 0;
	}
	try {
		baseNum2 = num2.toString().split(".")[1].length;
	} catch (e) {
		baseNum2 = 0;
	}
	baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
	return ((num1 * baseNum + num2 * baseNum) / baseNum).toFixed(2);
};

function number_chinese(str) {
	var num = parseFloat(str);
	var strOutput = "",
		strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分';
	num += "00";
	var intPos = num.indexOf('.');
	if (intPos >= 0) {
		num = num.substring(0, intPos) + num.substr(intPos + 1, 2);
	}
	strUnit = strUnit.substr(strUnit.length - num.length);
	for (var i = 0; i < num.length; i++) {
		strOutput += '零壹贰叁肆伍陆柒捌玖'.substr(num.substr(i, 1), 1) + strUnit.substr(i, 1);
	}
	return strOutput.replace(/零角零分$/, '整').replace(/零[仟佰拾]/g, '零').replace(/零{2,}/g, '零').replace(/零([亿|万])/g, '$1')
		.replace(
			/零+元/, '元').replace(/亿零{0,3}万/, '亿').replace(/^元/, "零元")

}


function randomChar(s) {
	var x = "0123456789";
	var tmp = "";
	var timestamp = (new Date().getTime() + "").substring(3, 13);
	for (var i = 0; i < s; i++) {
		tmp += x.charAt(Math.ceil(Math.random() * 100000000) % x.length);
	}
	var tmps = new Date().Format("yyyyMMdd");
	return tmps + timestamp + tmp;
}

function MathRand() {
	var Num = "";
	for (var i = 0; i < 6; i++) {
		Num += Math.floor(Math.random() * 10);
	}
	return Num;
}

	function clickBtn(e) {
		$("#" + e.id).addClass("organ-BtnCheck").siblings().removeClass("organ-BtnCheck");
		if (e.id == 'all') {
			location.href = '../html/organ-index.html'
		} else if (e.id == 'message') {
			location.href = '../html/organ-manage.html'
		} else {
			location.href = '../html/organ-activity.html'
		}
	}

	function CheckSocialCreditCode(Code) {
		var patrn = /^[0-9A-Z]+$/;
		//18位校验及大写校验
		if ((Code.length != 18) || (patrn.test(Code) == false)) {
			console.info("不是有效的统一社会信用编码！");
			return false;
		} else {
			var Ancode; //统一社会信用代码的每一个值
			var Ancodevalue; //统一社会信用代码每一个值的权重 
			var total = 0;
			var weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28]; //加权因子 
			var str = '0123456789ABCDEFGHJKLMNPQRTUWXY';
			//不用I、O、S、V、Z 
			for (var i = 0; i < Code.length - 1; i++) {
				Ancode = Code.substring(i, i + 1);
				Ancodevalue = str.indexOf(Ancode);
				total = total + Ancodevalue * weightedfactors[i];
				//权重与加权因子相乘之和 
			}
			var logiccheckcode = 31 - total % 31;
			if (logiccheckcode == 31) {
				logiccheckcode = 0;
			}
			var Str = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,T,U,W,X,Y";
			var Array_Str = Str.split(',');
			logiccheckcode = Array_Str[logiccheckcode];


			var checkcode = Code.substring(17, 18);
			if (logiccheckcode != checkcode) {
				console.info("不是有效的统一社会信用编码！");
				return false;
			} else {
				console.info("yes");
			}
			return true;
		}
	}

	// 函数参数必须是字符串，因为二代身份证号码是十八位，而在javascript中，十八位的数值会超出计算范围，造成不精确的结果，导致最后两位和计算的值不一致，从而该函数出现错误。
	// 详情查看javascript的数值范围
	function checkIDCard(idcode) {
		// 加权因子
		var weight_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
		// 校验码
		var check_code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];

		var code = idcode + "";
		var last = idcode[17]; //最后一位

		var seventeen = code.substring(0, 17);

		// ISO 7064:1983.MOD 11-2
		// 判断最后一位校验码是否正确
		var arr = seventeen.split("");
		var len = arr.length;
		var num = 0;
		for (var i = 0; i < len; i++) {
			num = num + arr[i] * weight_factor[i];
		}

		// 获取余数
		var resisue = num % 11;
		var last_no = check_code[resisue];

		// 格式的正则
		// 正则思路
		/*
		第一位不可能是0
		第二位到第六位可以是0-9
		第七位到第十位是年份，所以七八位为19或者20
		十一位和十二位是月份，这两位是01-12之间的数值
		十三位和十四位是日期，是从01-31之间的数值
		十五，十六，十七都是数字0-9
		十八位可能是数字0-9，也可能是X
		*/
		var idcard_patter =
			/^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;

		// 判断格式是否正确
		var format = idcard_patter.test(idcode);

		// 返回验证结果，校验码和格式同时正确才算是合法的身份证号码
		return last === last_no && format ? true : false;
	}

	class Storage {
		constructor(name) {
			this.name = 'storage';
		}
		//设置缓存
		setItem(params) {
			let obj = {
				name: '',
				value: '',
				expires: "",
				startTime: new Date().getTime() //记录何时将值存入缓存，毫秒级
			}
			let options = {};
			//将obj和传进来的params合并
			Object.assign(options, obj, params);
			if (options.expires) {
				//如果options.expires设置了的话
				//以options.name为key，options为值放进去
				localStorage.setItem(options.name, JSON.stringify(options));
			} else {
				//如果options.expires没有设置，就判断一下value的类型
				let type = Object.prototype.toString.call(options.value);
				//如果value是对象或者数组对象的类型，就先用JSON.stringify转一下，再存进去
				if (Object.prototype.toString.call(options.value) == '[object Object]') {
					options.value = JSON.stringify(options.value);
				}
				if (Object.prototype.toString.call(options.value) == '[object Array]') {
					options.value = JSON.stringify(options.value);
				}
				localStorage.setItem(options.name, options.value);
			}
		}
		//拿到缓存
		getItem(name) {
			let item = localStorage.getItem(name);
			//先将拿到的试着进行json转为对象的形式
			try {
				item = JSON.parse(item);
			} catch (error) {
				//如果不行就不是json的字符串，就直接返回
				item = item;
			}
			//如果有startTime的值，说明设置了失效时间
			if (!item) return false;
			if (item.startTime) {
				let date = new Date().getTime();
				//何时将值取出减去刚存入的时间，与item.expires比较，如果大于就是过期了，如果小于或等于就还没过期
				if (date - item.startTime > item.expires) {
					//缓存过期，清除缓存，返回false
					localStorage.removeItem(name);
					return false;
				} else {
					//缓存未过期，返回值
					return item.value;
				}
			} else {
				//如果没有设置失效时间，直接返回值
				return item;
			}
		}
		//移出缓存
		removeItem(name) {
			localStorage.removeItem(name);
		}
		//移出全部缓存
		clear() {
			localStorage.clear();
		}
	}

	var storage = new Storage();
